wallthickness = 1 --taken from strykercode as a starting point
motorHoleRadius = 1.1 --actual = 1 adding fudge
baseCylinderRadius = (25.06/2)
holeToCylinder = 1.32
centerHoleRadius = 5
holeOffset = baseCylinderRadius - holeToCylinder - motorHoleRadius

widthBetweenTopHoles = 32.38
widthBetweenBottomHoles = 29.8
heightBetweenHoles = 18.5

motormountWidth = 37.7
motorMountLength = 32.2 --2d object so I

base = Box lengthsegs:1 widthsegs:1 heightsegs:1 length:motorMountLength width:motormountWidth height:wallthickness mapcoords:on pos:[0,0,0] isSelected:on

centerHole = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:centerHoleRadius mapcoords:on pos:[0,0,(-0.5*wallthickness)] isSelected:on
centerOuterHole = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:motorHoleRadius mapcoords:on pos:[0,(-1*holeOffset),(-0.5*wallthickness)] isSelected:on
centerOuterHole.pivot = [0,0,0]
centerOuterHole.pivot = centerOuterHole.center

motorhole2 = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:motorHoleRadius mapcoords:on pos:[0,(-1*holeOffset),(-0.5*wallthickness)] isSelected:on
motorhole2.pivot = [0,0,0]
motorhole2.rotation.z_rotation = 140
motorhole2.pivot = motorhole2.center

motorhole3 = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:motorHoleRadius mapcoords:on pos:[0,(-1*holeOffset),(-0.5*wallthickness)] isSelected:on
motorhole3.pivot = [0,0,0]
motorhole3.rotation.z_rotation = 220
motorhole3.pivot = motorhole3.center

hole1 = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:motorHoleRadius mapcoords:on pos:[-widthBetweenBottomHoles/2,-heightBetweenHoles/2,(-0.5*wallthickness*3)] isSelected:on
hole2 = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:motorHoleRadius mapcoords:on pos:[-widthBetweenTopHoles/2,heightBetweenHoles/2,(-0.5*wallthickness*3)] isSelected:on
hole3 = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:motorHoleRadius mapcoords:on pos:[widthBetweenBottomHoles/2,-heightBetweenHoles/2,(-0.5*wallthickness*3)] isSelected:on
hole4 = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:motorHoleRadius mapcoords:on pos:[widthBetweenTopHoles/2,heightBetweenHoles/2,(-0.5*wallthickness*3)] isSelected:on

border = Cylinder smooth:on heightsegs:1 capsegs:1 sides:25 height:(wallthickness*3) radius:(motorMountLength + 0.22) mapcoords:on pos:[0,-motorMountLength/2,(-0.5*wallthickness*3)] isSelected:on --0.22 = fudge factor

 select base
 ProBoolean.CreateBooleanObject base centerHole 2 0 1
 ProBoolean.CreateBooleanObject base centerOuterHole 2 0 1
 ProBoolean.CreateBooleanObject base motorhole2 2 0 1
 ProBoolean.CreateBooleanObject base motorhole3 2 0 1
 ProBoolean.CreateBooleanObject base hole1 2 0 1
 ProBoolean.CreateBooleanObject base hole2 2 0 1
 ProBoolean.CreateBooleanObject base hole3 2 0 1
 ProBoolean.CreateBooleanObject base hole4 2 0 1
 
 ProBoolean.CreateBooleanObject base border 1 0 1

